import asyncio
import time


# 多协程-协程的异步并发执行，协作执行，交替执行

# 吃饭任务
async def eat():
    for i in range(6):
        print('正在吃东西...')
        # 这个time.sleep(0.3)是同步等待时间
        # time.sleep(0.3)
        # 如下是 切换下一个协程等待时间，时间设置0，表示等待时间为0，cpu直接切换到别的协程执行
        await asyncio.sleep(0)


# 做作业任务
async def work():
    for i in range(6):
        print('正在学习...')
        await asyncio.sleep(0)


# 定义一个异步函数入口
async def main():
    # 方式一：异步函数（协程）同步执行，eat()执行完之后，work()才开始执行
    # await eat()
    # await work()

    # 方式二：其他协程的入口 异步函数（协程）执行，多个协程交替执行。
    await asyncio.gather(eat(), work())


if __name__ == '__main__':
    start = time.time()
    # 如下调用异步函数（协程）是其实是同步的
    # asyncio.run(eat())
    # asyncio.run(work())

    # 异步函数统一入口
    asyncio.run(main())
    print(f'耗时为:{time.time() - start}')
